package ophiux.wechatpay.sdk.response;

import ophiux.wechatpay.sdk.common.parse.FieldKey;

/**
 * 提交刷卡支付   返回参数
 * <br/>请求地址:
 * <br/><h1>创建人: hehailong</h1><br/>
 * 创建时间：2017-7-11 下午2:49:46<br/>
 * 修改记录1：
 */
public class MicropayResponse extends OphiuxResponse{
	
	//当return_code为SUCCESS的时候，还会包括以下字段：
	@FieldKey("device_info")
	private String device_info;//设备号 device_info 否 String(32) 013467007045764 调用接口提交的终端设备号， 

	
	//当return_code 和result_code都为SUCCESS的时，还会包括以下字段：
	
	@FieldKey("openid")
	private String openid;//用户标识 openid 是 String(128) Y  用户在商户appid 下的唯一标识 
	@FieldKey("is_subscribe")
	private String is_subscribe;//是否关注公众账号 is_subscribe 是 String(1) Y  用户是否关注公众账号，仅在公众账号类型支付有效，取值范围：Y或N;Y-关注;N-未关注 
	@FieldKey("sub_openid")
	private String sub_openid;//用户子标识 sub_openid 否 String(128) Y  子商户appid下用户唯一标识，如需返回则请求时需要传sub_appid 
	@FieldKey("sub_is_subscribe")
	private String sub_is_subscribe;//是否关注子公众账号 sub_is_subscribe 是 String(1) Y  用户是否关注子公众账号，仅在公众账号类型支付有效，取值范围：Y或N;Y-关注;N-未关注 
	@FieldKey("trade_type")
	private String trade_type;//交易类型 trade_type 是 String(16) MICROPAY  支付类型为MICROPAY(即扫码支付) 
	@FieldKey("bank_type")
	private String bank_type;//付款银行 bank_type 是 String(32) CMC 银行类型，采用字符串类型的银行标识，值列表详见银行类型 
	@FieldKey("fee_type")
	private String fee_type;//标价币种 fee_type 否 String(16) CNY 符合ISO 4217标准的三位字母代码，默认人民币：CNY，其他值列表详见货币类型 
	@FieldKey("total_fee")
	private int total_fee;//标价金额 total_fee 是 Int 888 订单总金额，单位为分，只能为整数，详见支付金额 
	@FieldKey("cash_fee_type")
	private String cash_fee_type;//现金支付币种 cash_fee_type 否 String(16) CNY 符合ISO 4217标准的三位字母代码，默认人民币：CNY，其他值列表详见货币类型 
	@FieldKey("cash_fee")
	private int cash_fee;//现金支付金额 cash_fee 是 Int  100 订单现金支付金额，详见支付金额 
	@FieldKey("settlement_total_fee")
	private int settlement_total_fee;//应结订单金额 settlement_total_fee  否  Int  100  当订单使用了免充值型优惠券后返回该参数，应结订单金额=订单金额-免充值优惠券金额。  
	@FieldKey("coupon_fee")
	private int coupon_fee;//代金券金额  coupon_fee  否  Int  100 “代金券”金额<=订单金额，订单金额-“代金券”金额=现金支付金额，详见支付金额 
	@FieldKey("transaction_id")
	private String transaction_id;//微信支付订单号 transaction_id 是 String(32) 1217752501201407033233368018 微信支付订单号 
	@FieldKey("out_trade_no")
	private String out_trade_no;//商户订单号 out_trade_no 是 String(32) 1217752501201407033233368018 商户系统内部订单号，要求32个字符内，只能是数字、大小写字母_-|*@ ，且在同一个商户号下唯一。 
	@FieldKey("attach")
	private String attach;//商家数据包 attach 否 String(128) 123456 商家数据包，原样返回 
	@FieldKey("time_end")
	private String time_end;//支付完成时间 time_end 是 String(14) 20141030133525 订单生成时间，格式为yyyyMMddHHmmss，如2009年12月25日9点10分10秒表示为20091225091010。详见时间规则 
	
	@Override
	public String toString() {
		return "MicropayResponse [device_info=" + device_info + ", openid="
				+ openid + ", is_subscribe=" + is_subscribe + ", sub_openid="
				+ sub_openid + ", sub_is_subscribe=" + sub_is_subscribe
				+ ", trade_type=" + trade_type + ", bank_type=" + bank_type
				+ ", fee_type=" + fee_type + ", total_fee=" + total_fee
				+ ", cash_fee_type=" + cash_fee_type + ", cash_fee=" + cash_fee
				+ ", settlement_total_fee=" + settlement_total_fee
				+ ", coupon_fee=" + coupon_fee + ", transaction_id="
				+ transaction_id + ", out_trade_no=" + out_trade_no
				+ ", attach=" + attach + ", time_end=" + time_end
				+ ", toString()=" + super.toString() + "]";
	}

	public String getDevice_info() {
		return device_info;
	}

	public void setDevice_info(String device_info) {
		this.device_info = device_info;
	}

	public String getOpenid() {
		return openid;
	}

	public void setOpenid(String openid) {
		this.openid = openid;
	}

	public String getIs_subscribe() {
		return is_subscribe;
	}

	public void setIs_subscribe(String is_subscribe) {
		this.is_subscribe = is_subscribe;
	}

	public String getSub_openid() {
		return sub_openid;
	}

	public void setSub_openid(String sub_openid) {
		this.sub_openid = sub_openid;
	}

	public String getSub_is_subscribe() {
		return sub_is_subscribe;
	}

	public void setSub_is_subscribe(String sub_is_subscribe) {
		this.sub_is_subscribe = sub_is_subscribe;
	}

	public String getTrade_type() {
		return trade_type;
	}

	public void setTrade_type(String trade_type) {
		this.trade_type = trade_type;
	}

	public String getBank_type() {
		return bank_type;
	}

	public void setBank_type(String bank_type) {
		this.bank_type = bank_type;
	}

	public String getFee_type() {
		return fee_type;
	}

	public void setFee_type(String fee_type) {
		this.fee_type = fee_type;
	}

	public int getTotal_fee() {
		return total_fee;
	}

	public void setTotal_fee(int total_fee) {
		this.total_fee = total_fee;
	}

	public String getCash_fee_type() {
		return cash_fee_type;
	}

	public void setCash_fee_type(String cash_fee_type) {
		this.cash_fee_type = cash_fee_type;
	}

	public int getCash_fee() {
		return cash_fee;
	}

	public void setCash_fee(int cash_fee) {
		this.cash_fee = cash_fee;
	}

	public int getSettlement_total_fee() {
		return settlement_total_fee;
	}

	public void setSettlement_total_fee(int settlement_total_fee) {
		this.settlement_total_fee = settlement_total_fee;
	}

	public int getCoupon_fee() {
		return coupon_fee;
	}

	public void setCoupon_fee(int coupon_fee) {
		this.coupon_fee = coupon_fee;
	}

	public String getTransaction_id() {
		return transaction_id;
	}

	public void setTransaction_id(String transaction_id) {
		this.transaction_id = transaction_id;
	}

	public String getOut_trade_no() {
		return out_trade_no;
	}

	public void setOut_trade_no(String out_trade_no) {
		this.out_trade_no = out_trade_no;
	}

	public String getAttach() {
		return attach;
	}

	public void setAttach(String attach) {
		this.attach = attach;
	}

	public String getTime_end() {
		return time_end;
	}

	public void setTime_end(String time_end) {
		this.time_end = time_end;
	}
	
}
